package mypkg

import "fmt"

//声明一个接口类型
type MyInterface interface {
	MethodWithoutParameters()
	MethodWithParameter(float64)
	MethodWithReturnValue() string
}

//定义一个类型，让它满足MyInterface，即让该类型拥有接口定义的所有方法
type MyType int

//接口需要的三个方法
func (m MyType) MethodWithoutParameters() {
	fmt.Println("MethodWithoutParameters called")
}

func (m MyType) MethodWithParameter(f float64) {
	fmt.Println("MethodWithParameter called with", f)
}

func (m MyType) MethodWithReturnValue() string {
	return "Hi from MethodWithReturnValue"
}

//不属于接口的方法
func (my MyType) MethodNotInInterface() {
	fmt.Println("MethodNotInInterface called")
}
